# 在变量前面使用两个_代表着这个属性是私有属性
class Student(object):
    def __init__(self, name, age):
        self.__name = name
        self.__age = age

    def print_age(self):
        print('%s:%s' % (self.__name, self.__age))


tom = Student('Tom', 18)
tom.print_age()

# 以上就无法从外部访问到name和age了
# 以下方式取值就会报错
# print(tom.__name)

# 使用get和set对私有属性进行读写


class Teacher(object):
    def __init__(self, name, age):
        self.__name = name
        self.__age = age

    def print_age(self):
        print('%s:%s' % (self.__name, self.__age))

    def get_name(self):
        print(self.__name)

    def set_name(self, name):
        self.__name = name


lily = Teacher('Lily', 18)
lily.print_age()
lily.get_name()
lily.set_name('Lucy')
lily.get_name()
